"""
定义一个类
1. 创建初始化方法
    1.1 获取文件路径
    1.2 打开并读取excel
    1.3 获取指定的sheet页
    1.4 获取最大行/列
    1.5 获取第一行作为字典的key

2. 定义一个对外的方法:read_excel(类名,方法名)
    循环读取每一行的测试数据作为一条测试用例(第一行除外)
    2.1 获取当前一行数据
    2.2 获取到的数据和表头组装成字典
    2.3 判断字典内的对应字段:类名,方法名, 根据字段取出所需要的测试数据
    2.4 返回取出的测试数据

"""
import os,xlrd
# 定义一个类
class ReadData:
    # 1. 创建初始化方法
    def __init__(self):
        # 1.1 获取文件路径
        self.path_name = os.path.dirname(os.path.dirname(__file__)) + r"/testData/data.xls"
        # 1.2 打开并读取excel
        self.readbook = xlrd.open_workbook(self.path_name)
        # 1.3 获取指定的sheet页
        self.sheet = self.readbook.sheet_by_index(0)
        # 1.4 获取最大行/列
        self.max_row = self.sheet.nrows
        # 1.5 获取第一行作为字典的key
        self.first_row = self.sheet.row_values(0)

    # 2. 定义一个对外的方法:read_excel(类名,方法名)
    def read_excel(self,cls_name,func_name):
        # 循环读取每一行的测试数据作为一条测试用例(第一行除外)
        for i in range(1,self.max_row):
            # 2.1 获取当前一行数据
            row_value = self.sheet.row_values(i)
            # 2.2 获取到的数据和表头组装成字典
            dict1 = dict(zip(self.first_row,row_value))
            # 2.3 判断字典内的对应字段:类名,方法名, 根据字段取出所需要的测试数据
            if dict1["className"] == cls_name and dict1["methodName"] == func_name:
                # 2.4 返回取出的测试数据
                return dict1["testdata"]


if __name__ == '__main__':
    rd = ReadData()
    print(rd.read_excel("SearchTest", "test_max"))